home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / doc / cpp / README.Debian < prev   
Text File  |  2008-06-18  |  6KB  |  170 lines

  1.         The Debian GNU Compiler Collection Setup
  2.         ========================================
  3.  
  4. Abstract
  5. --------
  6.  
  7. Debian uses a default version of GCC for most packages; however, some
  8. packages require another version.  So, Debian allows several versions
  9. of GCC to coexist on the same system, and selects the default version
  10. by means of the gcc-defaults package, which creates symbolic links as
  11. appropriate.
  12.  
  13. Versions of GCC present in Debian Lenny
  14. ---------------------------------------
  15.  
  16. - GCC 4.3 is the default compiler for Ada, Fortran 95, and Java on
  17.   all architectures. This package also provides libgcc1, libgcc2 (m68k)
  18.   and libgcc4 (hppa) which contain the GCC intrinsics, and  libstdc++6.
  19.  
  20.   GCC-4.3 is the default compiler for C, C++, Objective-C and Objective-C++
  21.   on all architectures except alpha, amd64, hppa and i386.
  22.  
  23. - GCC-4.2 is the default compiler for C, C++, Objective-C and Objective-C++
  24.   on the architectures alpha, amd64, hppa and i386.
  25.  
  26. - GCC 4.1 is the default compiler for D and Pascal.
  27.  
  28. - GCC 3.4 is provided for the C, but is not the default for any language.
  29.  
  30. - GCC 3.3 is not provided anymore; it is used to build libstdc++5 on
  31.   the amd64 and i386 architectures. It is expected that libstdc++5 is
  32.   not available anymore for the release following Lenny.
  33.  
  34. - GCC 2.95 and GCC 2.7.2.3 were removed for the release of Lenny.
  35.  
  36. How are the default compilers selected?
  37. ---------------------------------------
  38.  
  39. Starting in Debian 3.0, there is now a gcc-defaults package set. This
  40. creates the actual packages for gcc, gnat, g++, gobjc, chill, gcj, gij,
  41. gdc and gpc.  These packages will depend on the corresponding default
  42. compiler for that architecture. For Debian 4.0 for example, "gcc"
  43. depends on "gcc-4.1", which means that the "gcc-4.1" package will
  44. install a binary called "gcc-4.1", which is symlinked to in the "gcc"
  45. package as "gcc".
  46.  
  47. This may seem confusing, but what it allows you do to is install more
  48. than one version of the GCC compiler collection at the same time,
  49. making sure you are always using the one preferred for that
  50. architecture. To use the other compiler, simply set CC=gcc-4.1, or
  51. similar.
  52.  
  53. The default compiler versions for Debian GNU/Linux on i386 are
  54. (minor version numbers omitted):
  55.  
  56.     cpp        : cpp-4.3
  57.     gcc        : gcc-4.3
  58.     g++        : g++-4.3
  59.     gfortran    : gfortran-4.3
  60.     gcj        : gcj-4.3
  61.     gij        : gij-4.3
  62.     gobjc        : gobjc-4.3
  63.     gobjc++        : gobjc++-4.3
  64.     gnat        : gnat-4.3
  65.     gpc        : gpc-4.1
  66.     gdc        : gdc-4.2
  67.  
  68. Documentation for the default compilers can be found in
  69.  
  70.     /usr/share/doc/<compiler>-<package version>.
  71.  
  72. Thanks to gcc-defaults, each architecture can choose its own preferred
  73. compiler for each language, and that preference can change without
  74. requiring a complete rebuild of both compiler packages for all
  75. architectures.
  76.  
  77. Practical implications
  78. ----------------------
  79.  
  80. The most important practical implications are in the merging/linking
  81. of object files built with different compilers; If you use the 4.1
  82. C compiler, you should use the gcc-4.1 compiler driver for all your
  83. work.  When configuring sources, use
  84.  
  85.     CC=gcc-4.1 ./configure <configure options>     # bash
  86.     setenv CC gcc-4.1; ./configure <options>    # csh
  87.  
  88. When calling make, use make CC=gcc-4.1.
  89.  
  90. C Application Binary Interface
  91. ------------------------------
  92.  
  93. Starting with Lenny, gcc-4.1 and newer compilers do support the long
  94. double datatype with 128bit on the alpha, powerpc, s390 and sparc
  95. architectures.  Libraries and applications using this datatype have to
  96. be rebuilt using the compiler versions in Lenny unless these depend on
  97. libc6/libc6.1 and libstdc++6, which still have compatibilty with a
  98. 64bit long double datatype.
  99.  
  100. gcc/g++/... are not handled using alternatives
  101. ----------------------------------------------
  102.  
  103. The symlinks in /usr/bin (gcc, g++, ...) are not handled using the Debian
  104. alternative mechanism. There are differences in the architecture specific
  105. ABI on some architectures and the C++ ABI differs as well. Having the
  106. symlinks managed by alternatives doesn't allow reliable builds with the
  107. same major/minor version of the compiler. To use another compiler version,
  108. set the appropriate environment variables as described above in the section
  109. "Practical implications".
  110.  
  111. C++ libraries
  112. -------------
  113.  
  114. To use the libstdc++ library for debugging (found in the libstd++<N>-dbg
  115. package), add /usr/lib/debug to your LD_LIBRARY_PATH. For gdb to
  116. display the source you need to get the correspondig gcc-X.Y source
  117. package, unpack the source and point gdb to the location of the source
  118. (dir directive).
  119.  
  120. C++ Application Binary Interface
  121. --------------------------------
  122.  
  123. Sometimes, the C++ ABI of GCC changes.  It is impossible to link
  124. object files that obey different ABIs into an executable.  When the
  125. ABI changes, Debian provides a new version of libstdc++ with a new
  126. soname.
  127.  
  128. Version 4 of the ABI was used by GCC 3.0 and 3.1; it is no longer
  129. supported.
  130.  
  131. Version 5 of the ABI is common to GCC 3.2 and 3.3; GCC 3.3
  132. provides libstdc++5. It is only supported as a runtime library.
  133.  
  134. Version 6 of the ABI is common to GCC 3.4 and later; GCC 4.3 provides
  135. libstdc++6.
  136.  
  137. Bugs
  138. ----
  139.  
  140. Before submitting a bug, please read README.Bugs in this directory.
  141.  
  142. Feedback appreciated
  143. --------------------
  144.  
  145. Feedback about this document is appreciated; preferably as a Severity:
  146. wishlist bug against Package: gcc . For general discussions and
  147. questions, subscribe and/or email the debian-gcc@lists.debian.org mailing
  148. list.
  149.  
  150. Maintainers of these packages
  151. -----------------------------
  152.  
  153. Matthias Klose <doko@debian.org>
  154. Ray Dassen <jdassen@debian.org>
  155. Philip Blundell <pb@debian.org>            (arm-linux)
  156. Jeff Bailey <jbailey@nisa.net>            (hurd-i386)
  157. Joel Baker <fenton@debian.org>            (netbsd-i386)
  158. Ben Collins <bcollins@debian.org>        (sparc-linux)
  159. Falk Hueffner <falk@debian.org>            (alpha-linux)
  160. Randolph Chung <tausq@debian.org>        (ia64-linux, hppa-linux)
  161. Thiemo Seufer <ths@networkno.de>        (mips*-linux)
  162. Dan Jacobowitz <dan@debian.org>            (powerpc-linux)
  163. Gerhard Tonn <GerhardTonn@swol.de>        (s390-linux)
  164. Roman Zippel <zippel@linux-m68k.org>        (m68k-linux)
  165. Ludovic Brenta <ludovic.brenta@insalien.org>    (gnat)
  166. Arthur Loiret <arthur.loiret@gmail.com>        (gdc)
  167.  
  168. ===============================================================================
  169.  
  170.